#pragma once

#ifdef WGLENGINE_DLL
#define WGLENGINE_EXPORT __declspec(dllexport)
#else
#define WGLENGINE_EXPORT __declspec(dllimport)
#endif

#include "Shader.h"
#include "glm\glm.hpp"
#include "BindingPt.h"

class WGLENGINE_EXPORT GUIShader : public Shader
{
public:
	GUIShader()
		: Shader()
	{
		this->vertFilePath = "guiVertShader.vert";
		this->fragFilePath = "guiFragShader.frag";
	}

	~GUIShader()
	{

	}
	

protected:
	
	virtual void Init() override
	{
		Shader::Init();
	
		Shader::Bind();
		gParam = glGetUniformBlockIndex(this->getProgramID(), "GuiParams");
		glUniformBlockBinding(this->getProgramID(), gParam, GUI_PARAM);

		/*projViewMat = glGetUniformBlockIndex(this->getProgramID(), "UniformParams");
		shaderParam = glGetUniformBlockIndex(this->getProgramID(), "ShaderParams");

		glUniformBlockBinding(this->getProgramID(), projViewMat, VIEW_PROJ_UBO);
		glUniformBlockBinding(this->getProgramID(), shaderParam, SHADER_PARAM);*/
		Shader::Unbind();
	}
	
	GLuint gParam;
	/*GLuint shaderParam;*/

};

